9 research outputs found

    Verifying Time Complexity of Deterministic Turing Machines

    Full text link
    We show that, for all reasonable functions T(n)=o(nlogn)T(n)=o(n\log n), we can algorithmically verify whether a given one-tape Turing machine runs in time at most T(n)T(n). This is a tight bound on the order of growth for the function TT because we prove that, for T(n)(n+1)T(n)\geq(n+1) and T(n)=Ω(nlogn)T(n)=\Omega(n\log n), there exists no algorithm that would verify whether a given one-tape Turing machine runs in time at most T(n)T(n). We give results also for the case of multi-tape Turing machines. We show that we can verify whether a given multi-tape Turing machine runs in time at most T(n)T(n) iff T(n0)<(n0+1)T(n_0)< (n_0+1) for some n0Nn_0\in\mathbb{N}. We prove a very general undecidability result stating that, for any class of functions F\mathcal{F} that contains arbitrary large constants, we cannot verify whether a given Turing machine runs in time T(n)T(n) for some TFT\in\mathcal{F}. In particular, we cannot verify whether a Turing machine runs in constant, polynomial or exponential time.Comment: 18 pages, 1 figur

    Simple PTAS's for families of graphs excluding a minor

    Full text link
    We show that very simple algorithms based on local search are polynomial-time approximation schemes for Maximum Independent Set, Minimum Vertex Cover and Minimum Dominating Set, when the input graphs have a fixed forbidden minor.Comment: To appear in Discrete Applied Mathematic

    Preverjanje časovne zahtevnosti Turingovih strojev

    Full text link
    The central problem in the dissertation is the following: "For a function ▫TcolonmathbbNrightarrowmathbbR,geq0T colon mathbb{N} rightarrow mathbb{R}_{,geq 0}▫, how hard is it to verify whether a given Turing machine runs in time at most ▫T(n)T(n)▫? Is it even possible?" Our first main contibution is that, for all reasonable functions ▫T(n)=operatornameo(nlogn)T(n) = operatorname{o}(nlog n)▫, it is possible to verify with an algorithm whether a given one-tape Turing machine runs in time at most ▫T(n)T(n)▫. This is a tight bound on the order of growth for the function ▫TT▫ because we prove that, for ▫T(n)=Omega(nlogn)T(n) = Omega(nlog n)▫ and ▫T(n)geqn+1T(n)geq n+1▫, there exists no algorithm that would verify whether a given one-tape Turing machine runs in time at most ▫T(n)T(n)▫. As opposed to one-tape Turing machines, we show that we can verify with an algorithm whether a given multi-tape Turing machine runs in time at most ▫T(n)T(n)▫ if and only if ▫T(n0)<n0+1T(n_0) < n_0+1▫ for some ▫n0inmathbbNn_0 in mathbb{N}▫. Linear time bounds are the most natural algorithmically verifiable time bounds for one-tape Turing machines, because a one-tape Turing machine that runs in time ▫operatornameo(nlogn)operatorname{o}(nlog n)▫ actually runs in linear time. This motivates our second main contibution which is the analysis of complexity of the following family of problems, parameterized by integers ▫Cgeq2Cgeq 2▫ and ▫Dgeq1D geq 1▫: "Does a given one-tape ▫qq▫-state Turing machine run in time ▫Cn+DCn+D▫?" Assuming a fixed tape and input alphabet, we show that these problems are co-NP-complete and we provide good lower bounds. Specifically, these problems cannot be solved in ▫operatornameo(q(C1)/4)operatorname{o}(q^{(C-1)/4})▫ non-deterministic time by multi-tape Turing machines. We also show that the complements of these problems can be solved in ▫operatornameO(qC+2)operatorname{O}(q^{C+2})▫ non-deterministic time and not in ▫operatornameo(q(C1)/4)operatorname{o}(q^{(C-1)/4})▫ non-deterministic time by multi-tape Turing machines. To prove the upper bound ▫operatornameO(qC+2)operatorname{O}(q^{C+2})▫, we use the so-called compactness theorem which is our third main contribution. We need more notation to state it in full generality, but a simple corollary tells the following: To verify whether an input one-tape Turing machine runs in time ▫Cn+DCn+D▫, it is enough to verify this on a finite number of inputs. We argue that our main results are proved with techniques that relativize and that using only such techniques we cannot solve the P versus NP problem.Osrednji problem v disertaciji je sledeč: "Naj bo ▫TcolonmathbbNrightarrowmathbbR,geq0T colon mathbb{N} rightarrow mathbb{R}_{,geq 0}▫ poljubna funkcija. Kako težko je preveriti, ali je časovna zahtevnost danega Turingovega stroja ▫T(n)T(n)▫? Je to sploh mogoče preveriti?" Naš prvi večji prispevek pove, da je za vse "normalne" funkcije ▫T(n)=operatornameo(nlogn)T(n)=operatorname{o}(nlog n)▫ možno z algoritmom preveriti, ali je časovna zahtevnost danega enotračnega Turingovega stroja ▫T(n)T(n)▫. Meja ▫operatornameo(nlogn)operatorname{o}(nlog n)▫ je tesna, saj za ▫T(n)=Omega(nlogn)T(n) = Omega(nlog n)▫ in ▫T(n)geqn+1T(n)geq n+1▫ ni mogoče z algoritmom preveriti, ali je časovna zahtevnost danega enotračnega Turingovega stroja ▫T(n)T(n)▫. Pri večtračnih Turingovih strojih je rezultat enostavnejši. Zanje namreč velja, da je časovno zahtevnost ▫T(n)T(n)▫ moč z algoritmom preveriti natanko tedaj, ko velja ▫T(n0)<n0+1T(n_0) < n_0+1▫ za neki ▫n0inmathbbNn_0 in mathbb{N}▫. Znano je, da je vsak enotračni Turingov stroj časovne zahtevnosti ▫operatornameo(nlogn)operatorname{o}(nlog n)▫ tudi linearne časovne zahtevnosti. Posledično je linearna časovna zahtevnost najbolj naravna časovna zahtevnost, ki jo lahko z algoritmom preverimo pri enotračnih Turingovih strojih. V disertaciji se zato ukvarjamo tudi z naslednjimi problemi, ki so parametrizirani z naravnima številoma ▫Cgeq2C geq 2▫ in ▫Dgeq1D geq 1▫: "Ali je dani enotračni Turingov stroj s ▫qq▫ stanji časovne zahtevnosti ▫Cn+DCn+D▫?" Pri analizi teh problemov, kar je naš drugi večji prispevek, predpostavljamo fiksno vhodno in tračno abecedo. Ti problemi so co-NP-polni in zanje lahko dokažemo dobre spodnje meje računske zahtevnosti. Ni jih namreč mogoče rešiti v času ▫operatornameo(q(C1)/4)operatorname{o}(q^{(C-1)/4})▫ z nedeterminističnimi večtračnimi Turingovimi stroji. Še več, komplementi teh problemov so rešljivi z večtračnimi nedeterminističnimi Turingovimi stroji v času ▫operatornameO(qC+2)operatorname{O}(q^{C+2})▫, ne pa v času ▫operatornameo(q(C1)/4)operatorname{o}(q^{(C-1)/4})▫. Pri dokazu zgornje meje ▫operatornameO(qC+2)operatorname{O}(q^{C+2})▫ uporabimo tako imenovani izrek o kompaktnosti, naš tretji večji prispevek. Potrebovali bi več notacije, da bi ga na tem mestu navedli, zato povejmo le njegovo posledico: Da bi preverili, ali dani enotračni Turingov stroj teče v času ▫Cn+DCn+D▫, je dovolj preveriti čas izvajanja Turingovega stroja le na končno mnogo vhodih. Glavni prispevki te disertacije so dokazani s tehnikami, ki relativizirajo. Dokažemo tudi znano dejstvo, da s takimi tehnikami ni mogoče rešiti slavnega problema ▫rmPstackrel?=NPrm{Pstackrel{?}{=}NP}
    corecore